home *** CD-ROM | disk | FTP | other *** search
- Subject: v24i103: psroff, Troff to PostScript filter, Part08/19
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Chris Lewis <clewis@ferret.ocunix.on.ca>
- Posting-number: Volume 24, Issue 103
- Archive-name: psroff3.o/part08
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: INSTALL audit.S fonts.lj/S.20.pk.UU lib/lj.fonts
- # lib/ps.lib
- # Wrapped by clewis@ecicrl on Fri Apr 5 20:56:00 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 8 (of 19)."'
- if test -f 'INSTALL' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'INSTALL'\"
- else
- echo shar: Extracting \"'INSTALL'\" \(11587 characters\)
- sed "s/^X//" >'INSTALL' <<'END_OF_FILE'
- X Psroff 3.0 Installation Instructions
- X 2.12 91/04/02
- X
- XPlease see the TROUBLE file if you have difficulties.
- XThe README file does provide a bit more background on some
- Xof these issues. If you are installing for use with real
- Xditroff, you'll also want to consult the DITROFF file during
- Xinstallation. After building and installing psroff, you
- Xwill want to read the MISC file for further tuning.
- X
- XI suggest you print this file and read it while you work through
- Xyour configuration.
- X
- X - Files that you will have to edit for proper configuration
- X of psroff:
- X
- X defs.h
- X Makefile
- X lib/psrofflib.S
- X
- X Important note: as shipped, both defs.h and Makefile are
- X configured for RS/6000 and most (if not all) stock System V's
- X with the exception of MANDIR and MANEXT in Makefile.
- X psrofflib.S MUST be changed for each system in the field.
- X
- X - Other files that may need to be customized for your needs:
- X
- X lib/*.lib
- X lib/*.fonts
- X
- X If you have to alter any other files, please contact me and
- X tell me where I've goofed.
- X
- X - If you have problems with the makefiles, you'll have to
- X find a System 5 make. Many systems have them squirrelled
- X away in odd places. Eg: Ultrix: /usr/bin/s5make
- X
- X If you have to do this, this should probably make things
- X work:
- X MAKE=<your System V make> export MAKE
- X <your System V make> <make arguments>
- X Eg:
- X MAKE=/usr/bin/s5make export MAKE
- X $(MAKE)
- X
- X - If you're building for ditroff input only, ignore the discussions
- X on HEADERSIZE and trofftype.
- X
- X - Ditroff input only: copy the appropriate
- X font width tables (try widthps/[A-Z]* for testing) to
- X /usr/lib/font/dev<type> and run makedev or mkfont on them.
- X
- X - NOTE: You may wish to try running "make check" at this
- X point, it should be able to find out the correct "HEADERSIZE"
- X and "trofftype" setting so you don't have to guess later on.
- X In any event, if you have problems and wish to ask me for help,
- X I will be requiring that you mail me a copy of the first
- X 50 lines or so of "make check" output.
- X
- X If you're running on RISC Ultrix ignore any HEADERSIZE or
- X trofftype messages. The reason for this is that RISC
- X Ultrix comes with width tables that cannot be read
- X by the RISC Ultrix troff, and make check will be fooled.
- X Define ASCIIWIDTHS in defs.h in this case. trofftype
- X in psrofflib should be the -F variant in this case.
- X
- X Psroff builds width table files that *can* be used by
- X RISC/Ultrix troff. You can tell if you need ASCIIWIDTHS
- X defined if:
- X echo ".fp 1 R" | troff -t > /dev/null
- X says something nasty about non-numeric character in file,
- X "may be non-ASCII".
- X
- X Apollos need the -F trofftype variant. Their HEADERSIZE
- X calculation is strange. You should set HEADERSIZE
- X to 0, and proceed with these instructions, but do NOT
- X install psroff. Once you've built psroff, consult
- X the TROUBLE file on how to run "dumpft -gv", which
- X will tell you what your HEADERSIZE should be, then you
- X should rebuild, test and install.
- X
- X The dumpft -gv trick will actually work on most systems
- X (except RISC/Ultrix), but it requires you to rebuild psroff
- X twice...
- X
- X - NOTE: during installs as root, the makefiles attempt to be
- X careful about the modes of the files it creates. HOWEVER,
- X some people do insist on "umask 077" for root, and I've
- X probably not fixed everything. If psroff doesn't work
- X after an install, I suggest that you check root's umask,
- X and ensure that it's 002 or 022 before invoking any
- X of the makefile install entries. If you forget, you
- X can invoke:
- X make fixperms
- X on the upper level makefile.
- X
- X - type "make unpackljfonts" This will uudecode the font
- X files I've supplied and remove the .UU files. This
- X step is unneccessary if you're not using Laserjets,
- X but it will regain you some space.
- X
- X - take a copy of the Makefile, defs.h and lib/psrofflib.S and
- X squirrel them away somewhere. I'm not going to produce
- X patch-independent configurators, so if a patch has to come
- X out, they may well zap these three files. If so, you'll
- X have to fix them manually. Other files (lib/*.fonts and
- X lib/*.lib) are field-configurable, and it is possible I
- X will patch a few of them later (particularly lj.fonts).
- X
- X - If you are using the supplied width tables (widths/widthps),
- X all is fine. But, if you're going to be driving another
- X package (eg: jetroff, tpscript, psdit, xtroff etc.) I suggest
- X you find the ditroff-format ASCII width tables (DESC, R, I,
- X S etc.), copy them to the appropriate widths/width<xx> area,
- X modify psrofflib.S to know how to use these width tables,
- X and possibly create *.fonts and *.lib files. psrofflib.S
- X has copious comments on how to configure psroff.
- X
- X psdit, tpscript, xtroff, Pageview, Display Postscript and
- X xproof work reasonably well using the Postscript widths in
- X widthps.
- X
- X - edit Makefile and change whatever you need to.
- X
- X - edit defs.h and define either BSD or ATT. A few other options will
- X pertain to you. Take special note of HEADERSIZE. Take a look
- X at /usr/lib/font/ftR. Is it 224 bytes long? If so, HEADERSIZE
- X should be 0. Otherwise you will probably have to set it to the
- X size of your a.out.h structure. VAX Ultrix and Sun appear to always
- X be HEADERSIZE = 32. See remark about RISC Ultrix above. If you're
- X Apollo, see remark above, plus info in TROUBLE file about Apollos.
- X
- X With Laserjet driving:
- X
- X MDLF max # downloaded fonts supported per page.
- X LJ+ have this as 16. Later models support more.
- X PRELOAD # fonts statically downloaded.
- X SFP enables SFP's with incremental font downloading.
- X Needs INCR.
- X INCR enable incremental font downloading. Needs PARTIAL.
- X PARTIAL enable partial font downloading (only those characters
- X troff could possibly use are downloaded). Needs PK.
- X PK enables PK font handling. If PK is off, the only
- X downloading supported is "cat <sfpfile>".
- X COMPRESS permits you to compress SFP files.
- X
- X Why all this config? Well, when INCR is defined up to 16 fonts
- X could be incore at any given moment, which can chew up a lot
- X of space (especially with large pointsize SFP's). I very
- X much doubt that you can use INCR on a 64K address space machine.
- X (or even split I&D!) But you really *do* want to use INCR,
- X otherwise you might blow the Laserjet's memory, and use of INCR
- X *dramatically* decreases the transmission time to the printer.
- X
- X If INCR not defined, at most only one font will be in core.
- X
- X If PARTIAL is defined, only those characters that troff *could*
- X use (remember ROMAN8 and MATH8 fonts have 192 characters each,
- X but R and S have less than 108 each) are loaded into memory,
- X and only they are downloaded to the Laserjet. This cuts down
- X the amount of laserjet memory used for fonts by about half,
- X and also cuts down transmission time.
- X
- X If PARTIAL is undefined, whole PK or SFPs are downloaded.
- X if PK is undefined, only whole SFP's are downloaded. And this
- X drops out the font handling machinery completely. Actually,
- X on LJIII's this isn't such a bad idea unless you intend on
- X using more than the built-in scaleable fonts.
- X
- X Certain HPLJ clones will apparently not work with incremental
- X downloading. If your printer screws up, undef INCR, but
- X make sure you have PARTIAL turned on and try again.
- X
- X - edit lib/psrofflib.S according to the instructions you find.
- X Take special note of -T/-F handling for troff (trofftype) -
- X check out your troff manual page! Suns and Ultrix want
- X trofftype='-F/usr/lib/font/$width/ftXX'. If you're running
- X postscript, you may want to eventually add the -Z option
- X to the entry to make your printer REALLY run fast.
- X
- X - If you're going to be driving HP Laserjets without a Postscript
- X cartridge:
- X
- X If you have PK fonts from TeX, ensure that PKFONTS
- X is set reasonably in the Makefile. type:
- X
- X make buildljfonts
- X
- X This will generate under $NEWFONTS a whole pile of
- X SFP's (PK's if SFP2PK is set to a good sfp2pk program,
- X such as Rick Richardson's jetroff utility). It will
- X also generate a $NEWFONTS/lj.fonts.new whose entries
- X should be *merged* (not copied) with lib/lj.fonts.
- X buildljfonts will generate a fair number of things,
- X so you may have to fix your Makefile/defs.h configuration.
- X Caution: if you have a lot of PK's, this will use up a LOT
- X of space - 5000 blocks or more!
- X
- X See LASERFONTS file for further information.
- X
- X - if you're going to be driving HP Laserjets, type:
- X
- X su root
- X make installljfonts
- X
- X This will attempt to copy the fonts I've supplied plus
- X any created in the previous step to the $LJF directory.
- X
- X - Type
- X make check
- X
- X This will attempt to figure out whether you got some of the
- X more important options correct (trofftype & HEADERSIZE).
- X
- X - Type
- X
- X make
- X
- X This will build everything (including width tables for any
- X HPLJ fonts you have supplied).
- X
- X - If you want to test psroff without actually installing it,
- X you will have to install the width tables (because troff's
- X limited as to where it will look for the width tables).
- X As root,
- X
- X make installwidths
- X
- X Will install the widths as FONTDIR/ps/ftXX (which shouldn't
- X conflict with anything you already have, and you'll be
- X able to run "make test" without doing the "make install" first.
- X Actually, psroff will work without this being done, but it
- X will use the width tables that came with your troff, so the
- X output will look a little odd (along with giving you a warning
- X to that effect).
- X
- X - Final installation:
- X As root,
- X make install
- X make installwidths
- X Will install everything.
- X
- X - "make test" will print a test page. If you have problems,
- X please run "make test", fill in the blanks, and mail me the
- X result. (See the README for the address). The test page
- X exercises all R & S troff characters at 10 point, and displays
- X a few other characters at different point sizes. If you don't
- X want to run psroff itself (eg: you've got troff2ps in a printer
- X daemon), type:
- X
- X make TEST
- X tbl TEST | troff -t -T<whatever> | <troff2ps server>
- X
- X "<troff2ps server>" may be "troff2ps -T<whatever> | your printer".
- X [The -T<whatever> would be replaced with -F/usr/lib/font/<whatever>/ftXX
- X if you are a -F type of troff (Suns, Ultrix etc.)]
- X
- X "TEST" is generated via make to include some information about
- X your configuration to help me diagnose your problems.
- X
- X If you're running on Laserjets, and you're just using my
- X fonts, you'll notice that the lines supposed to be 16 point
- X won't be, and the "6" will be missing in italic and bold.
- X Get some decent fonts.
- X
- X For ditroff input, "make dittest" and "make DITTEST" correspond
- X to "make test" and "make TEST".
- X
- X Once you've printed the test sheet, if there seems to be any problems,
- X consult the "TEST SHEET ANALYSIS" section of the TROUBLE files.
- X
- X - If you're running Postscript and you want to use n-up printing
- X (see psxlate(1)), you should obtain the psnup distribution
- X from comp.sources.misc. After building psnup, copy the
- X nup.pro and nup.epi files to LIBDIR.
- X
- X - If you're running Display Postscript, via the "dpsexec"
- X program, you may want to apply the patch mentioned in
- X MISC.
- X
- X - If you have problems, read the TROUBLE file which describes
- X some trouble-shooting.
- X
- X - At this point (presuming that you've successfully built, tested
- X and installed everything), you might want to consult the MISC
- X file for further customization.
- END_OF_FILE
- if test 11587 -ne `wc -c <'INSTALL'`; then
- echo shar: \"'INSTALL'\" unpacked with wrong size!
- fi
- # end of 'INSTALL'
- fi
- if test -f 'audit.S' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'audit.S'\"
- else
- echo shar: Extracting \"'audit.S'\" \(12941 characters\)
- sed "s/^X//" >'audit.S' <<'END_OF_FILE'
- X%%STARTSHELL%%
- X# Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 Chris Lewis
- X# All Rights Reserved
- X#
- X# See the LICENSE file for a full description of the restrictions
- X# under which this software is provided.
- X#
- X#
- X# Psroff checking script 2.9 91/03/26
- Xchkinst=false
- Xfor i
- Xdo
- X case $i in
- X install)
- X chkinst=true
- X ;;
- X *)
- X printerlist="$printerlist $i"
- X ;;
- X esac
- Xdone
- Xeval "`sed -n -e 's/[()]//g' \
- X -e 's/^LIBDIR.*=[ ]*/LIBDIR=/p' \
- X -e 's/^LJF.*=[ ]*/LJF=/p' \
- X -e 's/^FONTDIR.*=[ ]*/FONTDIR=/p' \
- X Makefile`"
- Xecho "LIBDIR = $LIBDIR"
- Xecho "LJF = $LJF"
- Xecho "FONTDIR = $FONTDIR"
- Xif [ -z "$FONTDIR" ]
- Xthen
- X echo "ERROR: That's odd, can't find a FONTDIR setting in Makefile"
- Xelif [ ! -d $FONTDIR ]
- Xthen
- X echo "ERROR: That's really odd, no such directory $FONTDIR"
- X echo " This is where CAT's width tables are supposed to be"
- X echo " It is usually /usr/lib/font"
- X FONTDIR=
- Xfi
- Xif [ -z "$LIBDIR" ]
- Xthen
- X echo "ERROR: Bad configuration - no LIBDIR setting"
- X exit 1
- Xelif [ ! -d $LIBDIR ]
- Xthen
- X echo "INFO: You've not installed psroff yet - no LIBDIR ($LIBDIR) exists"
- X if $chkinst
- X then
- X echo "ERROR: Can't check installed version unless it's installed"
- X exit 1
- X fi
- Xfi
- X
- Xif $chkinst
- Xthen
- X psrofflib=$LIBDIR/lib/psrofflib
- X libbase=$LIBDIR/lib
- Xelse
- X psrofflib=lib/psrofflib
- X libbase=lib
- Xfi
- Xif grep 'define.*ASCIIWIDTHS' defs.h > /dev/null 2>&1
- Xthen
- X cat <<\!
- XI see you've defined ASCIIWIDTHS. This means that your trofftype
- Xshould be the -F variant. Please ignore the rest of the checking
- Xfor trofftype and HEADERSIZE.
- X!
- Xfi
- X
- Xif [ ! -r $psrofflib ]
- Xthen
- X echo "ERROR: no $psrofflib to check"
- X exit 1
- Xfi
- X
- Xeval `grep '^troff=' $psrofflib`
- Xecho "INFO: Your troff setting in psrofflib is troff=$troff"
- Xif [ -n "$troff" ]
- Xthen
- X # This should be -x, but Ultrix sh doesn't believe in it
- X if [ ! -f $troff ]
- X then
- X echo "ERROR: troff setting in $psrofflib ($troff) doesn't exist"
- X troff=
- X fi
- Xelse
- X mpath=`echo $PATH | sed -e 's/^:/.:/' -e 's/:$/:./' -e 's/:/ /g'`
- X echo "INFO: Your path is $mpath"
- X for i in $mpath
- X do
- X if [ -f $i/troff ]
- X then
- X echo "INFO: Troff appears to be $i/troff"
- X troff=$i/troff
- X break
- X fi
- X done
- X if [ -z "$troff" ]
- X then
- X echo "ERROR: Can't find troff!"
- X exit 1
- X fi
- Xfi
- X
- Xeval `grep '^trofftype=' $psrofflib`
- Xecho "INFO: Your trofftype setting in $psrofflib is trofftype='$trofftype'"
- X
- Xif [ ! -r $FONTDIR/ftR -o ! -r $FONTDIR/ftI -o ! -r $FONTDIR/ftB -o \
- X ! -r $FONTDIR/ftS ]
- Xthen
- Xcat <<!
- XWARNING: Missing one of the $FONTDIR/ft[RIBS] files.
- X I was hoping that FONTDIR was pointing at the place where
- X your version of troff keeps its width tables (by default
- X /usr/lib/font). Since this is not true, I will not be able
- X to tell with complete accuracy whether your trofftype setting
- X works. Therefore, take any ERROR messages about trofftype with
- X a grain of salt. You could always copy widths/widthps/ft[RIBS]
- X (after make widths) into $FONTDIR, but, I NEED a ftR from
- X your ORIGINAL troff distribution to test HEADERSIZE properly.
- X!
- Xfi
- X
- Xif [ -n "$FONTDIR" ]
- Xthen
- X arglist="-F$FONTDIR/./ftXX"
- Xfi
- X
- Xecho hello | $troff > /tmp/out$$ 2> /tmp/err$$
- Xif [ -s /tmp/out$$ ]
- Xthen
- X echo "INFO: You appear to have ditroff - don't forget to use -N in"
- X echo " psrofflib's t2arg field for your printer configuration,"
- X echo " and ignore all HEADERSIZE/trofftype comments from here on"
- X echo " Quitting now - rest of normal checking irrelevant"
- X echo " If you also have CAT troff installed, alter the first"
- X echo " troff= assignment in psrofflib to point to it so that"
- X echo " testing relevant to CAT troff will be performed"
- X if [ -z "`grep '^#define[ ][ ]*DIT[ ][ ]*/' defs.h`" ]
- X then
- X echo "ERROR: You have ditroff, but DIT is undefined!"
- X exit 1
- X fi
- X exit 0
- Xfi
- Xif [ -s /tmp/err$$ ]
- Xthen
- X echo "INFO: You appear to have CAT troff - pay special attention to"
- X echo " the HEADERSIZE/trofftype settings"
- Xfi
- X
- Xif [ '(' -s /tmp/out$$ -a -s /tmp/err$$ ')' -o \
- X '(' -s /tmp/out$$ -a -s /tmp/err$$ ')' ]
- Xthen
- X echo "WHA? Your troff doesn't seem to be either CAT troff or ditroff."
- X echo " Good luck."
- Xfi
- X
- X
- Xfor i in $arglist -T. ''
- Xdo
- X echo "INFO: Testing '$i' trofftype setting"
- X $troff -t $i < /dev/null > /dev/null
- X rc=$?
- X if [ $rc = 0 ]
- X then
- X echo "... $i worked"
- X case $i in
- X -F*)
- X workingtype="-F$FONTDIR/\$width/ftXX"
- X ;;
- X -T*)
- X if [ -n "$FONTDIR" -a "$FONTDIR" != /usr/lib/font ]
- X then
- X echo "ERROR: FONTDIR must be /usr/lib/font with this"
- X echo " type of troff"
- X fi
- X workingtype="-T\$width"
- X ;;
- X *)
- X echo "INFO: Poor you, your troff doesn't understand -T or -F."
- X echo " This means that you'll have to put all of your"
- X echo " width files directly in $FONTDIR, and you'll not"
- X echo " be able to support multiple sets of width tables"
- X echo " The OTHER possibility is that you're running"
- X echo " RISC/Ultrix who's troff cannot even read their"
- X echo " own width tables! In this case, -F is probably"
- X echo " the correct form"
- X workingtype=" "
- X ;;
- X esac
- X break
- X else
- X echo "... $i didn't work"
- X fi
- Xdone
- Xif [ -z "$workingtype" ]
- Xthen
- X echo "ERROR: Oh my, your troff doesn't seem to work AT ALL!"
- X echo " It's giving me non-zero return codes when I try"
- X echo " all of the known different ways of setting width table"
- X echo " directory (including none!). Egads. Get Help!!!!!!!"
- X echo " (One possibility is that you have ditroff which doesn't"
- X echo " understand -t and will not work with psroff)"
- X exit 1
- Xfi
- X
- Xif [ "$workingtype" != "$trofftype" ]
- Xthen
- X echo "ERROR: You should have trofftype='$workingtype' in $psrofflib"
- X echo " Psroff won't work AT ALL without this fixed"
- Xelse
- X echo "INFO: Your trofftype setting ($trofftype) appears correct"
- Xfi
- X
- Xif [ ! -r $FONTDIR/ftR ]
- Xthen
- X echo "INFO: There isn't a $FONTDIR/ftR (it should be if you've installed"
- X echo " Troff on your system. Without it, I can't test HEADERSIZE"
- Xelse
- X hdrsize=`sed -n \
- X -e 's/^#define[ ]*HEADERSIZE[ ]*\([0-9]*\).*/\1/p' defs.h`
- X echo "INFO: You have HEADERSIZE defined as $hdrsize"
- X bytecount=`wc -c $FONTDIR/ftR | sed -e 's/^[ ]*//g' -e 's/[ ].*//`
- X case $bytecount in
- X 224)
- X echo "INFO: You appear to have a Xenix-like troff - width tables"
- X echo " have no extraneous garbage. Lucky you!"
- X acthdr=0
- X ;;
- X *)
- X echo "INFO: H'mm, you don't have a Xenix-like troff - Assuming"
- X echo " your troff puts a.out.h headers on width tables, I"
- X echo " will try compiling a teensy program to find out how"
- X echo " big a.out.h headers actually are...."
- X cat > AUDITP.c <<\!
- X#include <a.out.h>
- X#ifdef X_EXEC
- X/* Xenix I think.... */
- X#define HEADERSIZE sizeof(struct xexec)
- X#endif
- X#ifdef F_LNNO
- X/* COFF format headers */
- X#define HEADERSIZE (-sizeof(struct filehdr))
- X#endif
- X#ifndef HEADERSIZE
- X/* Generalized V7 or BSD - non-coff format headers */
- X#define HEADERSIZE sizeof(struct exec)
- X#endif
- Xmain() {
- Xprintf ("%d\n", HEADERSIZE);
- X}
- X!
- X rm -f AUDITP
- X if [ -z "$MAKE" ]
- X then
- X MAKE=make
- X fi
- X $MAKE AUDITP > /dev/null 2>&1
- X if [ ! -f AUDITP ]
- X then
- X echo "INFO: H'm, Wouldn't compile ..."
- X # Common for 32 bitters (Sun/Ultrix f'r instance)
- X acthdr=-32
- X else
- X acthdr=`./AUDITP`
- X fi
- X rm -f AUDITP AUDITP.c
- X case $acthdr in
- X -*)
- X echo 'INFO: The following HEADERSIZE is *purely* a guess:'
- X acthdr=`echo $acthdr | sed -e 's/-//'`
- X ;;
- X esac
- X echo "INFO: It looks like HEADERSIZE should be $acthdr"
- X ;;
- X esac
- X if [ "$hdrsize" != "$acthdr" ]
- X then
- X echo "ERROR: HEADERSIZE should be set to $acthdr, not $hdrsize"
- X else
- X echo "INFO: HEADERSIZE appears to be set correctly to $hdrsize"
- X fi
- Xfi
- X
- XTopts="`sed -e '/^[a-zA-Z]/!d' -e '/^troff/d' \
- X -e '/^trofftype/d' -e 's/[ ].*//' $psrofflib | sort -u`"
- Xecho "INFO: Commencing psrofflib ($psrofflib) checking"
- Xif $chkinst
- Xthen
- X msgtyp='ERROR '
- X troff2ps=$LIBDIR/troff2ps
- Xelse
- X msgtyp='WARNING'
- X troff2ps=./troff2ps
- Xfi
- X
- Xif [ ! -f $troff2ps ]
- Xthen
- X echo "WARNING: Can't test drivers, because troff2ps isn't built"
- Xfi
- Xrm -f PRINTERLIST
- X
- Xfor type in $Topts
- Xdo
- X troff="<not set>"
- X trofftype="<not set>"
- X width="<not set>"
- X t2arg="<not set>"
- X lparg="<not set>"
- X ptr="<not set>"
- X# If your system has no awk (or a busted one), you may have to
- X# comment out the "line=`awk ... $psrofflib" lines, and uncomment
- X# the sed script. If you do, you won't be able to continue
- X# psrofflib lines, so you'll have to "join" the entries in psrofflib
- X# (remembering to delete the name fields in the continuation lines).
- X line=`awk '
- X $1 ~ /^#/ {next}
- X $0 ~ /^troff/ { print $0 }
- X $1 == "'$type'" {
- X seen=1
- X print "F='T'" substr($0, length($1) + 1)
- X next
- X }
- X { if (seen) exit(0) }
- X ' $psrofflib`
- X eval "$line"
- X echo "INFO: psroff -T$type settings:"
- X echo " troff $troff"
- X echo " trofftype $trofftype"
- X echo " width $width"
- X if [ -n "$FONTDIR" -a ! -d $FONTDIR/$width ]
- X then
- X echo " * $msgtyp: FONTDIR/$width not installed yet"
- X echo " psroff -T$width won't work until you do"
- X fi
- X if [ ! -d widths/width${width} ]
- X then
- X echo " * WARNING: no widths/width${width} directory"
- X fi
- X echo " t2arg $t2arg"
- X drivertype=`echo $t2arg | sed -n -e 's/.*-T\([^ ]*\).*/\1/p'`
- X printertype=`echo $t2arg | sed -n -e 's/.*-p\([^ ]*\).*/\1/p'`
- X if [ -z "$drivertype" ]
- X then
- X echo " * INFO : no -T in $psrofflib t2arg - assuming ps"
- X drivertype=ps
- X fi
- X if [ -z "$printertype" ]
- X then
- X printertype=$drivertype
- X fi
- X echo " Driver type: $drivertype, library prefix: $printertype"
- X if [ -f $troff2ps ]
- X then
- X $troff2ps -T$drivertype < /dev/null > /dev/null 2>&1
- X if [ $? != 0 ]
- X then
- X echo " * ERROR : troff2ps driver $drivertype not" \
- X "configured psroff -T$width will die"
- X fi
- X fi
- X set +x
- X echo " lparg $lparg"
- X echo " ptr $ptr"
- X if [ ! -r $libbase/$printertype.lib ]
- X then
- X echo " * WARNING: no $libbase/$printertype.lib (no prolog)"
- X fi
- X if [ ! -r $libbase/$printertype.fonts ]
- X then
- X echo " * ERROR : Can't find $libbase/$printertype.fonts"
- X echo " Won't be able to give you list of fonts available"
- X continue
- X fi
- X echo "See $printertype.fonts below for listing of fonts"
- X echo $printertype >> PRINTERLIST
- Xdone
- X
- Xif [ -z "$printerlist" -a -s PRINTERLIST ]
- Xthen
- X printerlist=`sort -u PRINTERLIST`
- Xfi
- Xrm -f PRINTERLIST
- X
- Xfor printertype in $printerlist
- Xdo
- X (
- X if [ -n "$FONTDIR" -a -d "$FONTDIR/$printertype" ]
- X then
- X ls $FONTDIR/$printertype | sed -n -e 's/^.*ft//p' | sort -u
- X fi
- X echo "troff2ps"
- X cat $libbase/$printertype.fonts
- X ) | awk '
- X BEGIN {
- X fontdir = "'"$FONTDIR"'"
- X printertype = "'"$printertype"'"
- X catfonts[""] = 0
- X fonts[""] = 0
- X printf("\n\nPrinter type %s.fonts\n\n", printertype);
- X printf("%-4s %-20s %-25s %s\n", "Cat", "English Name", "Sequence", \
- X "Flags");
- X printf("Name\n\n");
- X ignoring = 0
- X }
- X $1 == "troff2ps" {
- X startlisting = 1;
- X next
- X }
- X $1 == "normal" || $1 == "symbol" {
- X ignoring = 1
- X }
- X $1 !~ /^[A-Za-z][A-Za-z]*/ {
- X next
- X }
- X NF >= 1 {
- X if (ignoring)
- X next
- X if (startlisting) {
- X english = ""
- X sequence = ""
- X flags = ""
- X name = $1
- X if (NF > 1)
- X english = $2
- X if (NF > 2)
- X sequence = $3
- X if (NF > 3)
- X flags = $4
- X printf("%-4s %-20s %-25s %s\n", name, english, sequence, flags);
- X fonts[name] = 1
- X } else {
- X catfonts[$1] = 1
- X ftdirfound = 1
- X }
- X }
- X END {
- X if (ftdirfound) {
- X for (name in fonts) {
- X if (name && !catfonts[name])
- X printf(" FONT %s: do not use: %s/%s/ft%s not installed\n",\
- X name, fontdir, printertype, name);
- X }
- X }
- X for (name in catfonts) {
- X if (name && !fonts[name]) {
- X printf(" FONT %s: do not use: %s/%s/ft%s exists, but", \
- X name, fontdir, printertype, name)
- X printf(" not in %s.fonts\n", printertype)
- X }
- X }
- X }'
- X if [ -n "$LJF" -a -d "$LJF" -a "$printertype" = lj ]
- X then
- X echo "I'm checking $printertype.fonts file for missing font"
- X echo "files, please have patience"
- X sed -e '/^[A-Za-z][A-Za-z]*/!d' $libbase/$printertype.fonts |
- X while read troffname english sequence flags
- X do
- X for i in 6 7 8 9 10 11 12 14 16 18 20 22 24 28 36
- X do
- X suffix=
- X case $flags in
- X n* | b*) ;;
- X p*)
- X suffix=pk
- X ;;
- X s*)
- X suffix=sfp
- X ;;
- X esac
- X if [ -n "$suffix" -a ! -r $LJF/$troffname.$i.$suffix ]
- X then
- X echo "ERROR: $LJF/$troffname.$i.$suffix missing"
- X fi
- X flags=`echo $flags | sed -e 's/.\(.*\)/\1/'`
- X done
- X done
- X fi
- Xdone
- END_OF_FILE
- if test 12941 -ne `wc -c <'audit.S'`; then
- echo shar: \"'audit.S'\" unpacked with wrong size!
- fi
- # end of 'audit.S'
- fi
- if test -f 'fonts.lj/S.20.pk.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fonts.lj/S.20.pk.UU'\"
- else
- echo shar: Extracting \"'fonts.lj/S.20.pk.UU'\" \(11597 characters\)
- sed "s/^X//" >'fonts.lj/S.20.pk.UU' <<'END_OF_FILE'
- Xtable
- X !"#$%&'()*+,-./0123456789:;<=>?
- X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
- Xbegin 644 fonts.lj/S.20.pk
- XM]UD``4``````````!":N``0FKJ",(0```$`[4_H]WB_=/]P]SSW//<XCW//<
- XM\]SB/<\]SSW//<XCW//<\]SB/<\]SSW/.^+!.^/!.]3!.\:_.\$5OSNB-;T[
- XMH56].Y%EO#PO6[/#];D\1;@\9;<\9;8\A;4\CUM#RELSRELCS%L3S/6P/.]9
- XM/06#T/5STO53U/4SU5(]?U$]CWV6VUVTW?/(L+$D````6$TF^R3!C7C+PM'"
- XMQL;-QL/)RGA<%UP,9L%+6ZQ%Q3E,*L)<<W3%G`7)-CQYI,PE/)F$S30\J67.
- XM(SS)1<\R/-DET2(LZA32(3S\'371P-1-*M5-.=5-.M1-2M--6=--6M)-3`T5
- XMT\'/,2TD&LXB+14IS3(\]4G,,RSE:<HT/-2)R34LQ*G'-CR5P)Q4<\=<*L))
- XM/%7$JUM,%L;`5\%8?*R</&S<;&PM'"RXUXP0H"HE````1#DR^RV_78?6G4Y+
- XM#4G6?84`*<W!!''<`"G%V'UIU.2PU)UGV%OPP(\F````1#DF^R2X`2>=#=E]
- XM39MM;6;%B=-=!,C07131BUTCTXE=(]6(33/6ADTSV'5-0]ES35+:@DU2V\U3
- XMW+U2W:UBWIUBWWURWXUB`0C5(!%]4@$)U"`0K3/>O4+>S3+=0HTBW4-](]M%
- XM?2+:1HT3V$B-$]99C0/56XT#TUT(T#T%TYQ);6T'T]G)S=JX`2>P;"H```!$
- XM*2KS*1+7(4U9TU%=%37/55S5=<M97)6UQUP5Q5PUPUQ5P5QUM<E97+5US55<
- XM]37145TYU7U_77?5G345T5-<]57-5URUE<E;7'7!7%7#7#7%7!7'6UR5E<M7
- XM7-55SU-=%173G502UR%@#2T```!$-03Y%AG!TQG!H$P\````/"\M^BK2'13.
- XM;,;,;,;,;+?+?+?+;,;,;,;+?+?+?+;,;,;,;+?-7/?0;0;0;0;0?/?/?0;0
- XM;0;0;0?/?/?0;0;0;0;0;032$:A*/0```#PO+/HI30;0;0;0;0;0?/?/?0;0
- XM;0;0;0?/?/?0;0;0;0;0?/7-?+;,;,;,;+?+?+?+;,;,;,;+?+?+?+;,;,;,
- XM;,;.31'2N"Q#````-RXX_#?B`0FL6JC)>HRGF,MIC,6?C-2>.,XYC.3CB,\^
- XMU(C9O0XL[("@CD0```!)0#K\.</T`0;>^-SZVOL=A!G7,IUD.=4TG419TS:=
- XM)'G1.)T/.ISCL9S$L:RSLYRDM)R3M9R$MIQSMYQDN)Q3N9Q$NIPSNYPDO)P3
- XMO9P$OIOSOYOO/!F\/#FZ3#JY/%FX3&FW/'FV3(FU/)FT3*FS/+FR3,FQ/-FP
- XM3.FCSYE-"8/1E_WU\!$P$Q!5L()(````1#DZ^SC+O?Q=EY?4;#;0?%?-;);+
- XM;+;(?-?%?/?#?1?";3;!;5:WU7GWUW?WV76-F$]]MS^-N"]V/+-G&&/+-L3F
- XM;1;$XF/+-H%]UR^-N#]]MTC9A??9=_?7>7U7MM5L!]-\%]%\-\]\5L]L=\M\
- XMILELUL=M!L-M1Y?8Q]Z\L*!^2P```#TV.OTYON)-;B;4^-+BK0^QSS&,Y!G-
- XM\SC,0YR_-8RC:<GS>,@XG'\YC&.IQ?.PC$.QG#.RC"2RG!.SG!.TC`2TF_.U
- XMF_.VB^2VF].WF].XB\2XF[\[J+H[N;GSO(N#O9M_.^BV._FU/`BT3`BT6_FQ
- XM>_FK"\L5XK:TNY`K3@```#LR-_PV'EQB/`,?3`?CPC#ZXSLCIN6XIN,[(P`5
- XM[D/"?\!!/`,N7&&H&%````!".3C\-P@'F^FT[4B^BTJ\I^*]F]"H@5(````_
- XM-#C[-^+7.K^R.PPI2L2$K$=:Q&6PQ%:L5'K$2*PTBL0YK#.JPDFPPCJL(["L
- XM$[&L`[&PSZT*T*S[#/K0K0^M"=&-%]-=-=-=1-1-1,$[5,([1,,[-,0[),1+
- XM%,4[%,8[!<5*7&25QTA<=77'9TQW9,>%3&I$P[)-4]8OUR#`35,````@("[]
- XM)-6M;3T&AJ71*DW4WDWDWDWDWSWTWN)-Y=[TW^)=YMU]R-R-NMJ]G-C0U]'7
- XMT=?0V,V;VJVXW'W6WO7>3>7>37)4V*VVT*!/5````$0Y.?LXA\![.QNK&K6W
- XMM'M[2W:XLKA;JQN3O*NR:)F88DL8A[%!2T=GLWMF9K5K9T:V:W9%MSNU-M!B
- XM72]272L-3CK5[#C4L<KBP;/`<U4````_-#C[-\XMX!2P'N9P'L`6V=Z1<IV7
- XM5V?5=WA])X>7T'EZ>HI[AXM\AGQ]!UC'T(.<?0DOC0?1@>6=!]&?&-!]&"G'
- XMT).,?0A7Q]!VBWR'BGN*>7I]!X>7TG=X?5=79]F1<IWMD!;`'>9P'K`4XM[0
- XML&)7````1#DX^S?#XL_:L!3F?-C%?%QL-\.CC"?"AXP7P8GWP7P7J,!\"+Z7
- XMP'P'P>-[>WP_>GI\5J>FQGEY?':7ELAX>'R7=W?+=G9\YE=6T7-S?4<7%]C'
- XMWK`4YG`4O:XL_#"P?U@````_-CG\.,G`VLC3F)SHPHRWQGR'RGQ7S'PHSHN<
- XMZ:C0B8TH>=*6C4A?G4D^B=:3C6A.*=25C4AITI?XTHF-"+]]!\%\Y\-LYL1\
- XMQ\5LQL=<Q<GURERTRDP/.DR$HQ.CR#HR.DQDHR\[/&.S)++&*T-*/$.D3CQ<
- XM3%7\3$Q#F)=9````24`Z_#<$8=0_TET&C%-XPSB,))C!.@C`2AB_.BB^2CB]
- XM.DB\2EB[.FBZ2GBY.HBX2IBW.JBV2KBU.M>T.NBS.OBQ.PBP2QBO.RBN2SBM
- XM.TBL2UBK.VBJ2WBI.XBH2YBG.ZBF2[BE.\BD2]BC._>B/`BA/!B3PHA,.'/$
- XMADQ84\:$3'@SR(),F!/*HLOZ#-^,]M'TM,"36@```"XL._PYV)`4T=]7;;3%
- XMV4TEUDU%U$UETDUUTCV5T&UVQ]=<?7:HUVJ-A:C8:7V6L]MN,!EM>*;3T7?1
- XM:$5\;#1[72,WEM0R>&UB&';7IVV99MJ5?:E/?;A/?<@XW'1]UT]]QTC<=/?<
- XM=7W&9]MV;<9_;;:'V6IMAK;7;0;5;1;4;3;2;5;'UWA]O5WM(!.=L*!?7```
- XM`$0U1_DVURUETWT8T)SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSJSY
- XMT7TXTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTXU&UC`"O=@0
- XM/QV!H%]>````1#5'^382UUU7U(TYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTY
- XMTYTYTYTYTYTWTHT)SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYT(
- XMTFU3`"[=@0/QV!!8"5\````J*@,`[-C`@6$````X,";\)-9P&=`!1F4!!:7=
- XM;%PY;16SAM)I1VU%DW;5:#9M9G17UF<V;89C5]AE1'V64U?99$2-ED-7VF-%
- XM?:8S9]IB18VF(V?;83=]NG?;F'VXE]MZ;<>O;<:VW'MMJ+;9G%UT%F,VU4)F
- XM-%TT5515T$=D.%=J4TG2T)T8UE;`NV(````Q,$K_.0%(`8T`%%=0$$M=U-%=
- XMM-)=I-1=A-5==-9=9-==5-A=4]AM0]EM--EM,]IM)-E](]IM)-IM(]IM,]I=
- XM--EM,]EM0ZDEU4C4UCA';7.-76.J)=1-EM,]M=/SVVT4VVT?/=;0/<?$W'SB
- XM/=>TW(OB/=>TW(OTW'Q-M\7;?%VGT&V6T6V&T8UFTC(]5M,S/3;4,TT6U$4\
- XM;5-U=M<YT=D\C;0!_B,!]`'^(P'T`?XC`?0!_S`@L&EC````+2XV_R3"?9O(
- XM.L/%2,;$.,C"1\G"-X>,!&;`;`-FPUI&3&2C9,=81DR$@V3*-T8\M&-SS#5&
- XM3,-3US4]=#38,SV3)-DR/:,4VO,3VWV^)MSUW>)-[B/>]-X][C3=XTW>--[S
- XMWRQPP()D````)R,[_#G9?<S85DUDH]1+32303071/%TBT%`10!'U`1]@$'WX
- XMWJW:W:W;W+W+V\U]+64YTV9])H?0:7QK:VT&EM%H?26&TU=]-6?45GU$:-1&
- XM]]5%C518U3;B?51GU$=M5';5./;42&TTIM)*;13%T3T&P]);3364U65-G-UM
- XM8,`X90```",<)?PCU:TM#-.WUGUVV&V&V&V'U_?7]]>-?]M-E8U^1]GC;:7:
- XM;:7;72-ET$=:669LT=2(L&EF````)R1*_#C*Y3U3&,S"R5<\=!P,9#G'33/3
- XM333334/4333333]---/TT_33]-/TTUT^)--=/C33Y%T_;3]M)])]&-&L[!S,
- XM/*Q<G%R<7)Q,O"S<#/G1?2;3XUTTR"I,@X3*14S:T&P0L'AG````+"@V_21U
- XMPWN:P(,U=65355.E-%4TMB-F%,!B-JPE%&G#43>,11-WQ9=\2?=\67;&:FQ7
- XME\5_EL9J;%>7Q7GVQFIL5Y?%>?;&:FQ7E\5Y]L9J;%>7Q7GVQFIL5Y?%>6QF
- XMP#QVU??5]M7WU?;5]]7VU??5;8.PP(-H````*2,[_3G97?G;14UU9=583465
- XMTEM-%K707%QL6VT%M=%:;1;X;29WTF=M-F?39FTW]7TW]'U'1]-TC3=/?4='
- XMTX/B`21].#C3=/?4='TX1]-U;4=6U&7WTW7WTG9M-G;2>%TFGUT6I=!K707%
- XMQM!:;16ETTE=1(761EV$1-NMY=G`/6D````?%R;\)*/6;3]]/VTWT^)M-]/B
- XM;3?3]M-]/B;3?3;3?3]L,7M!;#)K0FLR:T)J1%E%6$972%1:O1;`L&QJ````
- XM,RLF_"2CVVQEP7Q)M\*[;!08ML`SBGI$BGDV>VDY/!:#S7<\YU3/93T60]%R
- XM32O4P]#(RG7`QWJ,9L%\5L)\/WPWPO;%:#)\1W0GQ'<S]L5H,O?%9S-L9F0V
- XMQU8S?'531\A3-6RI@\U8L&UK````,RHZ^SB6V)V(UXUWUXU_?8]]>-?WV.)]
- XMCWV.)]CWUXU_?8XGV/?5K3O2P-%2?/4WSF.,QE?+9GRFA\AI?':GQFP'Q'P'
- XMPWP8P7PWP'Q'M\9Y?'>'R'=\IUC*=(RX*,UR?.<FT'%=)Q/48+!U;````#4O
- XM-OXDPCWVQSQGQEQ7Q6Q?;&;$]\5\3VQFQ/?%?$]L9L3WQ7Q/;&;$]\5\3VQF
- XMQ/?%?$]L9G-VQ7<V?%=D9\5G-WQ'<VC#AD;XPI8WFT)51KE#53?`9&4SABP8
- XMF65\%:]]SVW/?<]MSWW/;<]]QM\]X,!F;0```"LI)?PDA]@TT-=O+0UG=]=I
- XM;7:'UGA]9I;7:6UFE]9I?5:FUFIM5J?5:GU&MM1[;4:WTVQ])M!M-=%M)M!]
- XM%M%]!M)M!M-L74>UU7I=9I;7:%V'==EU7;9%W6)=[`$)`34!<+!U;@```"<D
- XM2OXXR>4]7!RL3%B#PW'!PG2<*,^,^-!]!]"-#WT(T.1])M)])M)RO&R,5X3$
- XMQ\1#O%323333733333]-/TTUT^)--=/VTVTGT8T9S\#-PLO$RL3)QLG%R<7*
- XMP\S!SJT(TFT_733'*EQSE,E53,O0:\!<;P```"HD)OPDUGW=#79FU%I=%L7&
- XMT&IM)9;39VU&9M9D?69&UV-]=O)]=QC7?Q?8<7U]/7TOV'%]>!]]=R;7<VUV
- XM1M9T;69FU&=M-I72:FT&Q<;16EU&9M?0W7U@L%UP````,B\E_2.]>MI]QMQM
- XMQF@X3%6CA,1:2#Q4M(/$3`.3PTP3A,,\%(332$TSD]-)/32$TEA-+TE-%931
- XM]*306DT%EL[UILUJ;-:US.)L!LKVP7R'PFR/;#;)/&/#L'=Q````+2@V_B3-
- XM?2P,YE3,6%R%IL9<!<5<%L-L)<)L-L%<1L!L1OML5J;&:FQ7E\5_EL9Y;%B'
- XMQ8^&QGA\6(?%>6QGEL5Y?%>7Q'IL5K?#>HPVN,)L"<!L&;;!<3E<-R15Q62\
- XM=F?(]]7VU??5]M7WU?;5]]5M@]?`97(````R+27\(]7=TP$=`!.P%+`4J7C7
- XMBGUGT'U'TFU&TVTVU6T7U6T6UFT/;7;'UVQMAL;7>WUVSVV&QM=\;7;078;0
- XM]==M%=9M)=9=-=5M1=-M5=)M==!MA<;:6EWE90$=`!9P$+`]<P```"<J)?TC
- XMO2K5?7;7;79J/*7`/)7`3)3!3(3"3'3"3(/#3:39]=GTV>)=CB78]MCUV.)M
- XM?B;7]]=ME,[`<W0````P*R;]))7:.IUG9#75=45=.4-ETY,W74@D=M1R.&U6
- XM%';6;Q.&UY=]=!.&V$$W?9.VV4MMD[?9.VVCMME*?9.VVCMME+;9.WV$MMD\
- XM;83&V#T&UTT&UST6UCTFU3U&TTU&TDUFT$V&L]MW3>T0$YU0L)]U````-"Y*
- XM_#C3\][TWO/>]-[SWO3>\][TWO/>]-JM3&SG)#;*945L9G.%PVDY7!:4I;6T
- XMM97`/`6&P#P&9L!,%5;!3!;S;"/";R;"3";Q;#/#86PDPL+"3"P?PSPV'VPD
- XMPF+VPCPF-L%,%E7!3`9FP#P&A<`\!96TM;6DEL%9.6PU@W;&945LIC0GSL;4
- XMK:]-[SWO3>\][TWO/>]-[ST@L)-V````-S`V_21VW+TB-#?0,S5\Y"-WS$,W
- XMC*3#?)3$C'3&?&3'?%3)?#3*?"7+?`7,?`3->TSWE-!X31=TTW5-1T35<TUW
- XM%-B]FMN-SWWO?<C;K9O807UT-]5$?417TT=]%(?027STM\U,!\Q<!\M<)\I,
- XM-\E,5\=,9\9,>,1,EY%4RH<S3,=S),YU,ST'-#+2O<9PP,)W````.35*_3@!
- XM?C,"1`).(P)$`DXC`D0"3B,"1`).(]Y=1,.ITCMV0UT3MU15T#J4-EQ*DS=<
- XM/()':ST'(X:ST6%':TT6\3AK/3EWL]-!.&M--!-WL]4[;#U$ML/4.WM-0[;#
- XMU3ML/42GP]0[;$U#ML/4/&P]-+?#TSQL323&P],]!L/2/1;#T4T6M-!--J/0
- XM34:CQ-9I.TUVA*/:9SE-UE-T`0@C1@%-0!JP(/,"1`).(P)$`DXC`D0"3B,"
- XM1`)#`3"PA'@````W-";_)`$CP"U6H]5X34ATU99-:%38=3V71-ID/<4TW%,]
- XMU#3=0SR#QT,\=<9"3&;&,_/';&,SQVQ4),9L8S/';&,SQVQ4,\=<8T/'7%1$
- XMQEQ$5,9,5%3%7$1DQ&PU9<)\)7;`G`65NJ>7;#:*R!R,#&/&P<5,7#PVPL>Y
- XMO+;"?"GD````5`U/W/0^PP#EZ````)AE3^CW775/7/8/8/8/8]-?MQ-?T
- XMUTV#V#UTUDU%VTVDVCVCV4V?39[<39]-D]H]H]H]L]M0R#E[````)AE3^CU=
- XMM-I-H]H]E-GTV>W$V?39/:/:/:/;/;75/7/8/8/8/8]-?MQ-?TUTV#V#UTUD
- XMU%UPL$]\````1#DG^R>WV1G!U3?$TS;&TC7)T#3+SS.'K-0FP9RT)<2,E"7&
- XMG&4DR8Q%),N<%B3,MX,\_+0]#)4]+&8]/$<]7!D=EP`X`!L05A`;$&`:?0``
- XM`$0Y*/LH&@';&@`"N:`=L:``*YH!VQH!R$U^````)AU3_#TM[SWN(][B/>XC
- XMWN(][B/>XSWN(][B/>XCWN(][B/>XCWN(][B/>XCWN(][B/>XCWN(][C/>XC
- XMWN(][B/>XCWN(][SWB"@F'\```!$.CS[.:FYFVM+.TLK>K>PN8N9=X:'=ULF
- XM1K)56U4EM51+>K=#6XBX4DN8N4+TNFND%;M+N?O$O(O2O8Y=>=5?%-5"734_
- XM331%T55<]73/2%S5E<M;!,M+%<E;)<=;1<5;9<-;A<%;I;];Q;U;Y;M<!K=L
- XM)K5L1K-L9K%LE:7,6%SE9=!4721$TU)=2M;XV/;:]-PL$,`RH0```"P@2?HX
- XMTB`0]-[VW(VJV,UD%!340D)-)#0TQ41%AE161G1V%928M+/@*M%`$"T@@#6B
- XM````6$T>^R/$'2/131/131/13131313131315=$@41T<U<Y,],],],],]-`]
- XM!-`]!-`](9;`,J,````L($GZ.-(@$.`J31.TN)25%G1V1E16A41%Q#0TTD)"
- XM3404%-;-BMJ-SVWO0!`M((`UI````%A-'OLCEATCT$T#T$T#T$STSTSTSTST
- XMSES=$042T571313131313131/131/131/2'$L&NF````+"4L_2H2UEU'THT:
- XMS\#-0GS$.,I%C(1WQTB,5*?$3`?"3!C`3#>TQ(E,:'3(=DR81,N"3-<?3.O-
- XM<4RX),F$3(=DQH=,2)3#>TP8P$P'PDI\1(C%1WQT6,A#C*0GS,#-K/C1?275
- XM+6"P:Z@````L)2S]*M8M5=)]&,^LW`S'),J#3(A4QW=,6(3$>DPGP$P(P4M\
- XM-)C$1XQD9\A$C)0HRT%\V_SD%\U"C+1(R49\A'C&28Q$M\-,",%,)\!,1Z3%
- XMB$QW=,B%3*@TS'),W`SZT8TGU%UB$%@)L````"HJ`P`^V+`QM0```#LP,OLP
- XM$MXA[63<G:44VD)=A3381%UE5=17;0:7S'N<:<'`K`Q-+(SLW(U,#&"P,;8`
- XM```[,#+[,,;`U,C-SLC2Q,"L#!G&FWS'EM!G7455UE1-A#784DVD%=J>UMQ!
- XM+>(0L%6W````.RPV^2_*R<?.Q-#"T<*M2-=]AMEME=I=I=M-M=I=M-M=M-M=
- XMOB3;7;]-S?$&<?3<7<XDW%W$W%W$W%W%W$W%W%W%W&VVVWVHVJU]'%T,;.RL
- XMD:!.N@```$0U-ODONL2WR;3+LLRQL,Z-%])M-=1=1=5-5=1=5-5=5-5=7B35
- XM75Z4UEUN)-9=9-9=9-9=9=9-9=9=9=9M5]2-.PT<RUR[;)NL0:!.NP```$0U
- XM-ODO'$NLFVR[7,T;#3C4?5;676767636767636763676XDUEZ=9-5>+53575
- XM357535747535747473;2?1C.L+',LLNTR;?$NJ!5O@```$0U1_DVNL2WR;3+
- XMLLRQL,Z-%])M-=1=1=1=5-5=5-5=5-5=7B3575Z$UEUN)-9=9-9=9-9=9-9=
- XM9=9=9=9M5]2-.PT<RUR[;)NL0`*_UC_8/6&@5;\```!$-4?Y-AQ+K)MLNUS-
- XM&PTXU'U6UEUEUEUEUDUEUDUEUDUEUN)-9>C6357BU4U5U4U5U4U5U4U5U%U%
- XMU%TVTGT8SK"QS+++M,FWQ``M'6/]@]8P<!+(````.S`7^QT:8=@:?HFD2E(0
- XML##,````+"$B^R7!?+P<;%P\?!R;RYS7SU_1/BTQ#LXATS_17/?-G+O)P<?#
- XMQ<;!RWP0D*_-````6$U+^SFVH]&MR;/$M\"CH:.\H*N@N8L8MHM8LWN7L6O6
- XMKVOVK5PUJUQ5J5QUIUR5I5RUI$S4HUS5H5SUH$T4E=%8331UTU9-5%755/37
- XM0UUU+B3905V9Z@VYV5XA390EUU/TUT1=55351ETU=--(7164T4H%SUH5S5HT
- XMS4I%RUI5R5IUQUJ5Q5JUPUK6OVKVO6L7N7LXM8MHL8N:"KH+RCH:/`M\2SR:
- XMW1H[8,`HS@```"<<2_LYQ-KH;:Y4W.(M%F)F&C(P/S(Z%F)FT?+<Y$VNW6VN
- XMTDR`.\\````G'$O[.9-)[G:>Y$H/*5A"2!VQ=25Y7RH.1)[G:>2[2>YVGN1*
- XM#RE80E<=L80DB5\J#D2>YVGDD[!4U0```"4C2_LYSET(SD,\Q%/+1%R5)\E#
- XM?BR%-\A5/)Y5T6T>-='D;171Y6T'T.1M!]#E;171Y&T>-=%M'E7(-EQ_=%Q_
- XM=$R'-,E53*-4S#-,Z-!<X-"7V````"PC1?P^`<("+T`@4"!`%W-`%`$P$E=P
- XM$4M`$4Q=3'M-B5V835%'74)6]`$$-%75-4]=1%-=55+B74927%91]L1\M7SB
- XMM(REC/I)R5G/E*R%K.*$O'6\]TQA5EQ2XE9-4F1<8F1-8U1-5%-=5%-`$%7U
- XM)-5T%=2)U9C4M\35Q`$5E0$85@$@$P%$-P%T`@4"#T`B(!R@]=D```!-1$S\
- XM.L*MNWU;O0FIS&MVR6NVQEOUPUPUP%Q5ODR4O$RTNDS4N$STMDT4M3TSM#U3
- XMLDU4L3USL//9.?/;-SW38\![LU.^1BNC0[Q**X-#NTLAMS,[M+0;<R.Z2V&V
- XM,CN5MAMC([E+5+4R.X6T6U,3N4M5MFN%M5MFN%MCMVN$S&Y[=<P_$[9<LR.W
- XM3+,O.W7*,_.W2Z&S-#N$N!M#4[=+@;,V.X2V&T-SN#M1M#@[D[,;4Y.Y.P*U
- XM.CNS<K<[`[R+@[%-5+(]4[0],[5-%+9,]+A,U+I,M+Q,E+Y<5<!<-<-;]<9K
- XMMLEK=LR:G0N]6WVZPF@-V@```"\F)OPEWNB(G>`(#.````!$%E/C/-[E@<#8
- XM#>$```!$%E/C/N!+G0R`H#;B````1!A3XSRZ.X6W:V:V:V:V:V:V:V>U>U][
- XM5[6+5[6+5[7XM/BTFT^+3YM/BTXYM(M.U9M`P#WC````1!A5\C[2[;GBT9T?
- XMG1G2C2C2C3?3?3?2C2?2?3?2;537;7?5?6?5C5?5?5?4C4C4C3G3^=/BG3[;
- XMD*@TY````$084^,^[5FUBUXYM?BU^;7XM9M?BV^+9[:+9[:+9[?WMWMWMVN&
- XMN&N&N&N&N&N%NC#8#?````!$%E/P/`R.!+V0``SQ````1!93\#X<Y8W@J#3R
- XM````1!A3\CP[I;AKAKAKAKAKAKAK=[=[?WMWMHMGMHMGMOBV^+6;7XM?FU^+
- XM7CFUBU[5D,@]\P```$085>,^[;G3XIT_G3G3C4C4C4?5?5?5C5?6?5?7;735
- XM;2?3?2?2C2?3?3?3C2C2C2G1^='BG1[;G2"@-O0```!$&%/R/K3M6;2+3CFT
- XM^+3YM/BTFT^+3XM7M8M7M8M7M?>U>U>V:V:V:V:V:V:V:W6X.Z#8"_4```!$
- XM"57C/@`O\"@)]@```%A7`@`6VY!5^P```%A-,/LLLSWTWEWDWEWDWEW5W5WD
- XMWEW5W5W<^IT:;3I=.E;;;;?:?:C8G7^@W)W8W7WGWFWVWM.GTZC1J<^K7?7?
- XM7?3?7?7?7?3?7?3?7?0!`\/8"_P````O)B;\)0!:8)!5_0```%A-,/LLPS`0
- XM3?7?3?7?3?7?7?7?3?7?7?6KSZG1J-.GT]YM]MY]Y]V-V=SZ#7G8C:?:?;;;
- XM:ETZ73IM&IS]U=U=U=Y-Y=U=U=Y-Y=Y-Y=Y-\[-@&OX```!$.3K[.(4I_H)(
- X/2@';&@A>?TA*`=L:`?7V
- X`
- Xend
- END_OF_FILE
- if test 11597 -ne `wc -c <'fonts.lj/S.20.pk.UU'`; then
- echo shar: \"'fonts.lj/S.20.pk.UU'\" unpacked with wrong size!
- fi
- # end of 'fonts.lj/S.20.pk.UU'
- fi
- if test -f 'lib/lj.fonts' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/lj.fonts'\"
- else
- echo shar: Extracting \"'lib/lj.fonts'\" \(3578 characters\)
- sed "s/^X//" >'lib/lj.fonts' <<'END_OF_FILE'
- X#@(#)lj.fonts 2.1 90/07/18
- X# four fields:
- X#
- X# troff-name english-name HPLJ-code-to-transmit flags
- X#
- X# \nnn sequences are only recognized in the HPLJ-code field.
- X# Don't put in *any* extraneous spaces.
- X#
- X# The source flags is a string of characters up to 15 long,
- X# where each character indicates where the font at a specific size
- X# *is*, and the point sizes go from troff's lowest to highest.
- X# The character mapping is:
- X#
- X# n: non existant - the lj driver will search "near" (+/- 4
- X# points) the requested pointsize in the same font, trying
- X# to find an existing pointsize that is "close".
- X# If it can't find one, the driver will select by
- X# characteristic the font that was requested, letting
- X# the printer figure it out. Which *will* work provided
- X# that the characteristics *here* and in the downloaded
- X# font are reasonable.
- X# b: builtin - font is selected by *characteristic*,
- X# and is either a ROM font/size, or a manually downloaded
- X# one. I suggest that if you manually download fonts,
- X# you select fontid's > 1000. (see below)
- X# s: there is a SFP at LIBDIR/lib/lj/<troffname>.<pointsize>.sfp
- X# where troffname is troff's name for a font. Eg: "R".
- X# And pointsize is troff's point size.
- X# p: there is a TeX PK format font file at
- X# LIBDIR/lib/lj/<troffname>.<pointsize>.pk.
- X#
- X# SFP and PK's are downloaded automatically by the LJ driver.
- X#
- X# They are assigned a LJ fontid calculated by:
- X# "index of the font in this table" * 16 + "index of pointsize"
- X# (6 is 0, 7 is 1, 36 is 14.)
- X# They are selected by this fontid. (eg: it doesn't matter if the
- X# font descriptor in a SFP has the correct characteristics or not)
- X#
- X# If the source string is too short or omitted, the missing point
- X# sizes are assumed "non-existent", unless DOWNLOAD is undefined,
- X# in which case they're assumed builtin.
- X#
- X# +----------------------------- Symbol set
- X# | +---------------------- 0=fixed, 1=proport
- X# | | +-------------------- 0=upright, 1=italics
- X# | | | +----------------- stroke weight -7...7
- X# | | | | +-------------- Typeface
- X# | | | | |
- X# | | | | | +----------- source flags...
- X# | | | | | |
- X# | | | | | v
- X# | | | | | 678910 14 20 28
- X# | | | | | 11 16 22 36
- X# | | | | | 12 18 24
- X# | | | | | |||||||||||||||
- X# v v v v v vvvvvvvvvvvvvvv
- XR Times-Roman \033(8U\033(s1p0s00b05T nnnnpnnnnnnnnnn
- XI Times-Italic \033(8U\033(s1p1s-3b05T nnnnpnnnnnnnnnn
- XB Times-Bold \033(8U\033(s1p0s03b05T nnnnpnnnnnnnnnn
- XS Symbol \033(8M\033(s1p0s00b05T ppppppppppppppp
- XBI Times-BoldItalic \033(8U\033(s1p1s03b05T nnnnnnnnnnnnnnn
- XC Courier \033(8U\033(s0p0s00b03T nnnnbnbnnnnnnnn
- XCI Courier-Italic \033(8U\033(s0p1s-3b03T nnnnbnbnnnnnnnn
- XCB Courier-Bold \033(8U\033(s0p0s03b03T nnnnbnbnnnnnnnn
- XL LinePrinter \033(8U\033(s0p0s00b00T nnnnnnnnnnnnnnn
- XLI LinePrinter-Ital \033(8U\033(s0p1s-3b00T nnnnnnnnnnnnnnn
- XLB LinePrinter-Bold \033(8U\033(s0p0s03b00T nnnnnnnnnnnnnnn
- XH Helvetica-Roman \033(8U\033(s1p0s00b04T nnnnpnnnnnnnnnn
- XHI Helvetica-Italic \033(8U\033(s1p1s-3b04T nnnnpnnnnnnnnnn
- XHB Helvetica-Bold \033(8U\033(s1p0s03b04T nnnnnnnnnnnnnnn
- END_OF_FILE
- if test 3578 -ne `wc -c <'lib/lj.fonts'`; then
- echo shar: \"'lib/lj.fonts'\" unpacked with wrong size!
- fi
- # end of 'lib/lj.fonts'
- fi
- if test -f 'lib/ps.lib' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/ps.lib'\"
- else
- echo shar: Extracting \"'lib/ps.lib'\" \(12499 characters\)
- sed "s/^X//" >'lib/ps.lib' <<'END_OF_FILE'
- X% Copyright 1985, 1986, 1987, 1988 Chris Lewis
- X% All Rights Reserved
- X%
- X% Permission to copy and further distribute is freely given provided
- X% this copyright notice remains intact and that this software is not
- X% sold for profit.
- X%
- X% Project: Generic Troff drivers
- X% Module: ps.lib
- X% Author: Chris Lewis
- X% Specs: Predefinitions for PostScript
- X%ident @(#)ps.lib: 2.11 Copyright 91/03/28 19:25:44 Chris Lewis"
- X
- X/Y { 3 1 roll dup /CurY exch def moveto show } bind def
- X/X { exch CurY moveto show } bind def
- X/hits 0 def
- X/misses 0 def
- X/pagecount 0 def
- X
- X% Are we display postscript?
- X/DPS? systemdict /viewclip known def
- X
- X/drawfraction {
- X /denominator exch def
- X /numerator exch def
- X /origY exch def
- X /origX exch def
- X origX curPoints 4.7 div add origY moveto
- X (/) show
- X curFont findfont curPoints .5 mul cvi scalefont setfont
- X origX origY curPoints 3 div add moveto
- X numerator show
- X origX curPoints 2.5 div add origY moveto
- X denominator show
- X curFont findfont curPoints scalefont setfont
- X origX origY moveto
- X} def
- X
- X/mySetLineWidth {
- X curPoints 3 72 div mul setlinewidth
- X} def
- X
- X/do12 {
- X (1) (2) drawfraction
- X} def
- X
- X/do14 {
- X (1) (4) drawfraction
- X} def
- X
- X/do34 {
- X (3) (4) drawfraction
- X} def
- X
- X/doff {
- X moveto
- X (f) show curPoints 20 div neg 0 rmoveto (f) show
- X} def
- X
- X/doFi {
- X moveto
- X (f) show curPoints 20 div neg 0 rmoveto (\256) show
- X} def
- X
- X/doFl {
- X moveto
- X (f) show curPoints 20 div neg 0 rmoveto (\257) show
- X} def
- X
- X% This should be sort of a font-caching mechanism - eg:
- X% remember each font/point combination requested, and
- X% if the setting is not already known, *then* do the findfont/scalefont.
- X% Otherwise, simply retrieve it.
- X% However, even with simply recalculating the font each time, it
- X% isn't *that* slow. Eg: 20 seconds or so for *very* "font-changy"
- X% pages.
- X%
- X% Trial font cache - I can't think in Polish... ;-)
- X/SetFont {
- X /curPoints exch def
- X /curFont exch def
- X % Concatenate the curFont string with the curPoints to create
- X % a new name and assign to cF
- X
- X /cF 50 string def
- X
- X cF 0
- X cF curFont cF cvs % cF 0 string "curFont"
- X length dup % cF 0 "curFont\0\0..." N N
- X curPoints 10 string cvs % cF 0 "curFont\0\0..." N N "points"
- X dup length % cF 0 "curFont\0\0..." N N "points" M
- X 3 -1 roll add % cF 0 "curFont\0\0..." N "points" M+N
- X 4 1 roll % cF 0 M+N "curFont\0\0..." N "points"
- X putinterval % cF 0 M+N (cF <- "curFontpoints")
- X getinterval % "curFontpoints"
- X
- X /cF exch def
- X cF
- X cvn % /curFontpoints
- X
- X where {
- X /hits hits 1 add def
- X pop
- X } {
- X /misses misses 1 add def
- X cF curFont findfont curPoints scalefont def
- X } ifelse
- X cF cvn load setfont
- X} def
- X
- X/metrics {
- X /psize 16 def
- X /Times-Roman psize SetFont
- X /charcount exch def
- X /curpos 720 def
- X /xpos 72 def
- X xpos curpos (Execution Summary:) Y
- X /curpos curpos psize sub def
- X xpos 36 add curpos (Font cache hits: )Y
- X hits ( ) cvs show
- X /curpos curpos psize sub def
- X xpos 36 add curpos (Font cache misses: )Y
- X misses ( ) cvs show
- X /curpos curpos psize sub def
- X xpos 36 add curpos (Character count: )Y
- X charcount ( ) cvs show
- X /curpos curpos psize sub def
- X xpos 36 add curpos (Page count: )Y
- X pagecount ( ) cvs show
- X /curpos curpos psize sub def
- X xpos 36 add curpos (Execution time (seconds): )Y
- X usertime btime sub 0.001 mul ( ) cvs show
- X showpage
- X} def
- X
- X/docircle {
- X /origY exch def
- X /origX exch def
- X /radius curPoints 3 div def
- X newpath origX radius add origY radius add radius 0 360 arc
- X mySetLineWidth
- X stroke
- X origX origY moveto
- X} def
- X
- X/doru {
- X moveto
- X 0 curPoints 5 div rmoveto (_) show
- X} def
- X
- X/do34em {
- X /origY exch def
- X /origX exch def
- X /emheight curPoints .23 mul def
- X newpath
- X origX origY emheight add moveto
- X origX curPoints .75 mul add origY emheight add lineto
- X mySetLineWidth
- X stroke
- X origX origY moveto
- X} def
- X
- X/dosq {
- X /origY exch def
- X /origX exch def
- X /L curPoints .8 mul def
- X newpath
- X origX origY moveto
- X origX origY L add lineto
- X origX L add origY L add lineto
- X origX L add origY lineto
- X closepath
- X mySetLineWidth
- X stroke
- X origX origY moveto
- X} def
- X
- X/dobox {
- X /origY exch def
- X /origX exch def
- X /L curPoints def
- X newpath
- X origX origY moveto
- X origX origY L add lineto
- X origX L add origY L add lineto
- X origX L add origY lineto
- X closepath
- X 1 setlinewidth
- X stroke
- X origX origY moveto
- X} def
- X
- X
- X/fourpops {
- X 4 {pop} repeat
- X} def
- X
- X% These are macros so that they can be redefined.
- X% print current page.
- X/ShowPage {
- X DPS? { % wait for input on page break.
- X (Select other window and hit enter to continue...) waitprompt
- X } if
- X
- X showpage
- X /pagecount pagecount 1 add def
- X} def
- X
- X/waitprompt {
- X /Times-Bold findfont 20 scalefont setfont
- X 0 0 moveto show % prompt
- X (%stdin) (r) file % open stdin for reading
- X 20 string readline % read a line into the string
- X % stack contains filled substring and
- X % boolean indicating whether reached EOF
- X pop pop
- X} def
- X
- X% Emitted at beginning of page.
- X/StartPage {
- X Form
- X} def
- X
- X% If you want to define a Bell System Logo, go ahead. This
- X% one draws an animal (ferret) face
- X% Object should be scaled off of curPoints, with origX,origY
- X% lower left coordinates.
- X/BellSymbol {
- X /origY exch def
- X /origX exch def
- X /TEMPSAVE save def
- X
- X /Radius curPoints 3 div def % Face Radius
- X /HRadius Radius 2 div def % Half Face Radius
- X /NRadius Radius 6 div def % Nose Radius
- X /ERadius Radius 8 div def % Eye Radius
- X /EarRadius Radius 3 div def % Ear Radius
- X /FaceType (Ferret) def
- X
- X /MRadius Radius 4 div def % Mask corner radius
- X /TopMask Radius .7 mul def % XCent & YCent max delta
- X /BotMask NRadius 1.1 mul def % YCent min delta
- X
- X /XCent origX Radius add def
- X /YCent origY Radius add def
- X
- X newpath
- X % Main face
- X XCent YCent Radius 0 360 arc mySetLineWidth stroke
- X % Nose
- X XCent YCent NRadius 0 360 arc fill
- X % Left Ear
- X XCent Radius 45 sin mul sub
- X YCent Radius 45 sin mul add EarRadius 20 250 arc mySetLineWidth stroke
- X % Right Ear
- X XCent Radius 45 sin mul add
- X YCent Radius 45 sin mul add EarRadius -70 160 arc mySetLineWidth stroke
- X % Cleft
- X XCent YCent NRadius sub moveto
- X XCent YCent HRadius sub lineto
- X mySetLineWidth stroke
- X
- X % Mouth
- X XCent HRadius 45 sin mul sub YCent HRadius 45 sin mul sub moveto
- X XCent HRadius 30 sin mul sub YCent HRadius sub lineto
- X XCent HRadius 30 sin mul add YCent HRadius sub lineto
- X XCent HRadius 45 sin mul add YCent HRadius 45 sin mul sub lineto
- X mySetLineWidth stroke
- X
- X FaceType (Ferret) eq {
- X % Mask
- X .6 setgray
- X XCent TopMask sub YCent BotMask add YCent TopMask add add 2 div moveto
- X
- X XCent TopMask sub YCent TopMask add
- X XCent TopMask add YCent TopMask add
- X MRadius arcto fourpops
- X XCent TopMask add YCent TopMask add
- X XCent TopMask add YCent BotMask add
- X MRadius arcto fourpops
- X XCent TopMask add YCent BotMask add
- X XCent TopMask sub YCent BotMask add
- X MRadius arcto fourpops
- X XCent TopMask sub YCent BotMask add
- X XCent TopMask sub YCent TopMask add
- X MRadius arcto fourpops
- X fill
- X
- X 0 setgray
- X } if
- X
- X % Eyes
- X XCent HRadius add YCent HRadius add ERadius 0 360 arc fill
- X XCent HRadius sub YCent HRadius add ERadius 0 360 arc fill
- X TEMPSAVE restore
- X origX origY moveto
- X} def
- X
- X% bracket building font
- X%
- X%
- X% Michael Rourke, University of N.S.W., Australia
- X%
- X/BracketFontDict 9 dict def /$workingdict 10 dict def
- XBracketFontDict begin
- X/FontType 3 def
- X/FontName (Bracket) cvn def
- X/FontMatrix [ 0.001 0 0 0.001 0 0] def
- X/FontBBox [ -50 -250 1000 1000 ] def
- X/Encoding 256 array def 0 1 255 { Encoding exch /.notdef put } for
- XEncoding
- Xdup 65 /Cbv put %A
- Xdup 66 /Clt put %B
- Xdup 67 /Clk put %C
- Xdup 68 /Clb put %D
- Xdup 69 /Crt put %E
- Xdup 70 /Crk put %F
- Xdup 71 /Crb put %G
- Xdup 72 /Clc put %H
- Xdup 73 /Clf put %I
- Xdup 74 /Crc put %J
- Xdup 75 /Crf put %K
- Xdup 76 /Cbr put %L
- Xdup 77 /Crn put %M
- Xdup 78 /Cci put %N
- Xdup 79 /Cru put %O
- Xdup 81 /Cr1 put %Q
- Xdup 82 /Cr2 put %R
- Xpop
- X/CharProcs 24 dict dup begin
- X/setC { 0 -50 -250 500 1000 setcachedevice} def
- X/C.bv {220 -250 moveto 0 1000 rlineto
- X60 0 rlineto 0 -1000 rlineto fill } def
- X/C.barc { 750 moveto 180 0 rlineto 0 -60 rlineto -180 0 rlineto fill } def
- X/C.barf { -250 moveto 180 0 rlineto 0 60 rlineto -180 0 rlineto fill } def
- X/C.setl {dup dtransform exch round exch idtransform pop setlinewidth } def
- X/Cbv {
- X300 setC
- XC.bv
- X} def
- X/Clk {
- X300 setC
- X 1 setlinewidth 220 -250 moveto 0 400 rlineto 0 50 -50 100 -100 100
- X rcurveto
- X 50 0 100 50 100 100 rcurveto 0 400 rlineto 60 0 rlineto 0 -400 rlineto
- X 0 -50 -50 -100 -100 -100 rcurveto 50 0 100 -50 100 -100 rcurveto
- X 0 -400 rlineto closepath fill
- X} def
- X/Crk {
- X300 setC
- X 1 setlinewidth 220 -250 moveto 0 400 rlineto 0 50 50 100 100 100 rcurveto
- X -50 0 -100 50 -100 100 rcurveto 0 400 rlineto 60 0 rlineto 0 -400 rlineto
- X 0 -50 50 -100 100 -100 rcurveto -50 0 -100 -50 -100 -100 rcurveto
- X 0 -400 rlineto fill
- X} def
- X
- X% Fixes from Henry McGilton of Sun. Thanks!
- X% Previous version didn't work with Pageview.
- X/C.brk.end { 300 setC 1 setlinewidth moveto rcurveto
- X rlineto rlineto rlineto rcurveto fill } def
- X/Clt {
- X 0 150 50 210 140 250
- X 0 730 60 0 0 -750
- X -150 0 -200 -100 -200 -250
- X 420 750 C.brk.end
- X} def
- X/Clb {
- X 0 -150 50 -250 200 -250
- X 0 -750 -60 0 0 730
- X -90 40 -140 100 -140 250
- X 420 -230 C.brk.end
- X} def
- X/Crt {
- X 0 150 -50 250 -200 250
- X 0 750 60 0 0 -730
- X 90 -40 140 -100 140 -250
- X 80 730 C.brk.end
- X} def
- X/Crb {
- X 0 -150 -50 -210 -140 -250
- X 0 -730 -60 0 0 750
- X 150 0 200 100 200 250
- X 80 -250 C.brk.end
- X} def
- X% end fixes.
- X
- X/Clc {
- X300 setC
- X C.bv 280 C.barc
- X} def
- X/Clf {
- X300 setC
- X C.bv 280 C.barf
- X} def
- X/Crc {
- X300 setC
- X C.bv 40 C.barc
- X} def
- X/Crf {
- X300 setC
- X C.bv 40 C.barf
- X} def
- X/Cbr {
- X0 0 -50 -250 0 1000 setcachedevice
- X 40 C.setl 0 -250 moveto 0 1000 rlineto stroke
- X} def
- X/Cru {
- X0 0 -50 -250 1000 0 setcachedevice
- X 40 C.setl 0 -250 moveto 500 0 rlineto stroke
- X} def
- X/Crn {
- X300 setC
- X 40 C.setl 0 895 moveto 500 0 rlineto stroke
- X} def
- X/Cci {
- X600 0 -50 -250 700 1000 setcachedevice
- X 40 C.setl 400 250 300 0 360 arc stroke
- X} def
- X/Cr1 {
- X800 0 -50 -250 800 1000 setcachedevice
- X 40 C.setl 0 setlinejoin 700 180 moveto -650 currentlinewidth add 0
- X rlineto 200 -200 rlineto 50 360 moveto 650 currentlinewidth sub 0 rlineto
- X -200 200 rlineto stroke
- X} def
- X/Cr2 {
- X800 0 -50 -250 800 1000 setcachedevice
- X 40 C.setl 2 setlinejoin 217 18 moveto -150 150 rlineto 150 150 rlineto
- X -150 -150 rlineto 633 0 rlineto 50 360 moveto 633 0 rlineto -150 150
- X rlineto 150 -150 rlineto -150 -150 rlineto stroke
- X} def
- Xend def
- X/BuildChar
- X{
- X $workingdict begin
- X /charcode exch def
- X /fontdict exch def
- X fontdict /CharProcs get begin
- X fontdict /Encoding get
- X charcode get load
- X gsave
- X 0 setlinecap 0 setgray newpath
- X exec
- X grestore
- X end end
- X} def end
- X/BracketFont BracketFontDict definefont pop
- X
- X/Ellipse {
- X /Yaxis exch 2 div def
- X /Xaxis exch 2 div def
- X currentpoint exch Xaxis add exch
- X /savematrix matrix currentmatrix def
- X translate
- X Xaxis Yaxis scale
- X 1 0 moveto
- X 0 0 1 0 360 arc
- X savematrix setmatrix
- X %currentpoint exch Xaxis 2 mul add exch moveto
- X} bind def
- X
- X/Arc {
- X /eY exch def
- X /eX exch def
- X /cY exch def
- X /cX exch def
- X currentpoint cY add exch cX add exch % center x y
- X cY dup mul cX dup mul add sqrt % radius
- X cY neg cX neg atan % ang1
- X eY eX atan % ang2
- X% 5 copy
- X% ( ) cvs print
- X% ( ) print
- X% ( ) cvs print
- X% ( ) print
- X% ( ) cvs print
- X% ( ) print
- X% ( ) cvs print
- X% ( ) print
- X% ( ) cvs print
- X arc
- X} bind def
- X
- X/dofill {
- X currentgray exch setgray fill setgray
- X} bind def
- X
- X/dost{
- X currentlinewidth exch setlinewidth stroke setlinewidth
- X} bind def
- X
- X% This macro is invoked by ShowPage to display the current form.
- X% Usually redefined to point at a form loaded by an include
- X% directive. Redefinition triggered by .sR O<formname> troff
- X% directive.
- X% Global default form (usually redefined top of each page anyways)
- X/Form {} def
- X% This is a convenient place for putting your extra inclusions.
- X% Eg: this would load conf.ps (from current directory or LIBDIR)
- X% and insert it into the end of the prolog.
- X% This loads the confidential form.
- X%%%include confid
- X%%%include lethead
- END_OF_FILE
- if test 12499 -ne `wc -c <'lib/ps.lib'`; then
- echo shar: \"'lib/ps.lib'\" unpacked with wrong size!
- fi
- # end of 'lib/ps.lib'
- fi
- echo shar: End of archive 8 \(of 19\).
- cp /dev/null ark8isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 19 archives.
- echo "Read the README to get started with psroff installation"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
-
- exit 0 # Just in case...
-